// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
//
// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// ------------------------------------------------
//
// This file is automatically generated.
// Please do not edit these files manually.
//
// ------------------------------------------------

using System;
using System.Threading;
using System.Threading.Tasks;

#nullable restore
namespace Elastic.Clients.Elasticsearch.Ml
{
	public class MlNamespace : NamespacedClientProxy
	{
		internal MlNamespace(ElasticsearchClient client) : base(client)
		{
		}

		public MlCloseJobResponse CloseJob(MlCloseJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlCloseJobRequest, MlCloseJobResponse>(request);
		}

		public Task<MlCloseJobResponse> CloseJobAsync(MlCloseJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlCloseJobRequest, MlCloseJobResponse>(request, cancellationToken);
		}

		public MlCloseJobResponse CloseJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlCloseJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlCloseJobRequestDescriptor, MlCloseJobResponse>(descriptor);
		}

		public MlCloseJobResponse CloseJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlCloseJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlCloseJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlCloseJobRequestDescriptor, MlCloseJobResponse>(descriptor);
		}

		public Task<MlCloseJobResponse> CloseJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlCloseJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlCloseJobRequestDescriptor, MlCloseJobResponse>(descriptor);
		}

		public Task<MlCloseJobResponse> CloseJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlCloseJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlCloseJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlCloseJobRequestDescriptor, MlCloseJobResponse>(descriptor);
		}

		public MlDeleteCalendarEventResponse DeleteCalendarEvent(MlDeleteCalendarEventRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteCalendarEventRequest, MlDeleteCalendarEventResponse>(request);
		}

		public Task<MlDeleteCalendarEventResponse> DeleteCalendarEventAsync(MlDeleteCalendarEventRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteCalendarEventRequest, MlDeleteCalendarEventResponse>(request, cancellationToken);
		}

		public MlDeleteCalendarEventResponse DeleteCalendarEvent(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id event_id)
		{
			var descriptor = new MlDeleteCalendarEventRequestDescriptor(calendar_id, event_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteCalendarEventRequestDescriptor, MlDeleteCalendarEventResponse>(descriptor);
		}

		public MlDeleteCalendarEventResponse DeleteCalendarEvent(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id event_id, Action<MlDeleteCalendarEventRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteCalendarEventRequestDescriptor(calendar_id, event_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteCalendarEventRequestDescriptor, MlDeleteCalendarEventResponse>(descriptor);
		}

		public Task<MlDeleteCalendarEventResponse> DeleteCalendarEventAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id event_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteCalendarEventRequestDescriptor(calendar_id, event_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteCalendarEventRequestDescriptor, MlDeleteCalendarEventResponse>(descriptor);
		}

		public Task<MlDeleteCalendarEventResponse> DeleteCalendarEventAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id event_id, Action<MlDeleteCalendarEventRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteCalendarEventRequestDescriptor(calendar_id, event_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteCalendarEventRequestDescriptor, MlDeleteCalendarEventResponse>(descriptor);
		}

		public MlDeleteCalendarResponse DeleteCalendar(MlDeleteCalendarRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteCalendarRequest, MlDeleteCalendarResponse>(request);
		}

		public Task<MlDeleteCalendarResponse> DeleteCalendarAsync(MlDeleteCalendarRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteCalendarRequest, MlDeleteCalendarResponse>(request, cancellationToken);
		}

		public MlDeleteCalendarResponse DeleteCalendar(Elastic.Clients.Elasticsearch.Id calendar_id)
		{
			var descriptor = new MlDeleteCalendarRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteCalendarRequestDescriptor, MlDeleteCalendarResponse>(descriptor);
		}

		public MlDeleteCalendarResponse DeleteCalendar(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlDeleteCalendarRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteCalendarRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteCalendarRequestDescriptor, MlDeleteCalendarResponse>(descriptor);
		}

		public Task<MlDeleteCalendarResponse> DeleteCalendarAsync(Elastic.Clients.Elasticsearch.Id calendar_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteCalendarRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteCalendarRequestDescriptor, MlDeleteCalendarResponse>(descriptor);
		}

		public Task<MlDeleteCalendarResponse> DeleteCalendarAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlDeleteCalendarRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteCalendarRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteCalendarRequestDescriptor, MlDeleteCalendarResponse>(descriptor);
		}

		public MlDeleteDatafeedResponse DeleteDatafeed(MlDeleteDatafeedRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteDatafeedRequest, MlDeleteDatafeedResponse>(request);
		}

		public Task<MlDeleteDatafeedResponse> DeleteDatafeedAsync(MlDeleteDatafeedRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteDatafeedRequest, MlDeleteDatafeedResponse>(request, cancellationToken);
		}

		public MlDeleteDatafeedResponse DeleteDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id)
		{
			var descriptor = new MlDeleteDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteDatafeedRequestDescriptor, MlDeleteDatafeedResponse>(descriptor);
		}

		public MlDeleteDatafeedResponse DeleteDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlDeleteDatafeedRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteDatafeedRequestDescriptor, MlDeleteDatafeedResponse>(descriptor);
		}

		public Task<MlDeleteDatafeedResponse> DeleteDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteDatafeedRequestDescriptor, MlDeleteDatafeedResponse>(descriptor);
		}

		public Task<MlDeleteDatafeedResponse> DeleteDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlDeleteDatafeedRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteDatafeedRequestDescriptor, MlDeleteDatafeedResponse>(descriptor);
		}

		public MlDeleteDataFrameAnalyticsResponse DeleteDataFrameAnalytics(MlDeleteDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteDataFrameAnalyticsRequest, MlDeleteDataFrameAnalyticsResponse>(request);
		}

		public Task<MlDeleteDataFrameAnalyticsResponse> DeleteDataFrameAnalyticsAsync(MlDeleteDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteDataFrameAnalyticsRequest, MlDeleteDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlDeleteDataFrameAnalyticsResponse DeleteDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id)
		{
			var descriptor = new MlDeleteDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteDataFrameAnalyticsRequestDescriptor, MlDeleteDataFrameAnalyticsResponse>(descriptor);
		}

		public MlDeleteDataFrameAnalyticsResponse DeleteDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id, Action<MlDeleteDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteDataFrameAnalyticsRequestDescriptor, MlDeleteDataFrameAnalyticsResponse>(descriptor);
		}

		public MlDeleteDataFrameAnalyticsResponse DeleteDataFrameAnalytics<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlDeleteDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlDeleteDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteDataFrameAnalyticsRequestDescriptor<TDocument>, MlDeleteDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlDeleteDataFrameAnalyticsResponse> DeleteDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteDataFrameAnalyticsRequestDescriptor, MlDeleteDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlDeleteDataFrameAnalyticsResponse> DeleteDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, Action<MlDeleteDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteDataFrameAnalyticsRequestDescriptor, MlDeleteDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlDeleteDataFrameAnalyticsResponse> DeleteDataFrameAnalyticsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlDeleteDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteDataFrameAnalyticsRequestDescriptor<TDocument>, MlDeleteDataFrameAnalyticsResponse>(descriptor);
		}

		public MlDeleteExpiredDataResponse DeleteExpiredData(MlDeleteExpiredDataRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteExpiredDataRequest, MlDeleteExpiredDataResponse>(request);
		}

		public Task<MlDeleteExpiredDataResponse> DeleteExpiredDataAsync(MlDeleteExpiredDataRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteExpiredDataRequest, MlDeleteExpiredDataResponse>(request, cancellationToken);
		}

		public MlDeleteExpiredDataResponse DeleteExpiredData()
		{
			var descriptor = new MlDeleteExpiredDataRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteExpiredDataRequestDescriptor, MlDeleteExpiredDataResponse>(descriptor);
		}

		public MlDeleteExpiredDataResponse DeleteExpiredData(Action<MlDeleteExpiredDataRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteExpiredDataRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteExpiredDataRequestDescriptor, MlDeleteExpiredDataResponse>(descriptor);
		}

		public Task<MlDeleteExpiredDataResponse> DeleteExpiredDataAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteExpiredDataRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteExpiredDataRequestDescriptor, MlDeleteExpiredDataResponse>(descriptor);
		}

		public Task<MlDeleteExpiredDataResponse> DeleteExpiredDataAsync(Action<MlDeleteExpiredDataRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteExpiredDataRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteExpiredDataRequestDescriptor, MlDeleteExpiredDataResponse>(descriptor);
		}

		public MlDeleteFilterResponse DeleteFilter(MlDeleteFilterRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteFilterRequest, MlDeleteFilterResponse>(request);
		}

		public Task<MlDeleteFilterResponse> DeleteFilterAsync(MlDeleteFilterRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteFilterRequest, MlDeleteFilterResponse>(request, cancellationToken);
		}

		public MlDeleteFilterResponse DeleteFilter(Elastic.Clients.Elasticsearch.Id filter_id)
		{
			var descriptor = new MlDeleteFilterRequestDescriptor(filter_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteFilterRequestDescriptor, MlDeleteFilterResponse>(descriptor);
		}

		public MlDeleteFilterResponse DeleteFilter(Elastic.Clients.Elasticsearch.Id filter_id, Action<MlDeleteFilterRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteFilterRequestDescriptor(filter_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteFilterRequestDescriptor, MlDeleteFilterResponse>(descriptor);
		}

		public Task<MlDeleteFilterResponse> DeleteFilterAsync(Elastic.Clients.Elasticsearch.Id filter_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteFilterRequestDescriptor(filter_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteFilterRequestDescriptor, MlDeleteFilterResponse>(descriptor);
		}

		public Task<MlDeleteFilterResponse> DeleteFilterAsync(Elastic.Clients.Elasticsearch.Id filter_id, Action<MlDeleteFilterRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteFilterRequestDescriptor(filter_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteFilterRequestDescriptor, MlDeleteFilterResponse>(descriptor);
		}

		public MlDeleteForecastResponse DeleteForecast(MlDeleteForecastRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteForecastRequest, MlDeleteForecastResponse>(request);
		}

		public Task<MlDeleteForecastResponse> DeleteForecastAsync(MlDeleteForecastRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteForecastRequest, MlDeleteForecastResponse>(request, cancellationToken);
		}

		public MlDeleteForecastResponse DeleteForecast(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlDeleteForecastRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteForecastRequestDescriptor, MlDeleteForecastResponse>(descriptor);
		}

		public MlDeleteForecastResponse DeleteForecast(Elastic.Clients.Elasticsearch.Id job_id, Action<MlDeleteForecastRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteForecastRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteForecastRequestDescriptor, MlDeleteForecastResponse>(descriptor);
		}

		public Task<MlDeleteForecastResponse> DeleteForecastAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteForecastRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteForecastRequestDescriptor, MlDeleteForecastResponse>(descriptor);
		}

		public Task<MlDeleteForecastResponse> DeleteForecastAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlDeleteForecastRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteForecastRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteForecastRequestDescriptor, MlDeleteForecastResponse>(descriptor);
		}

		public MlDeleteJobResponse DeleteJob(MlDeleteJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteJobRequest, MlDeleteJobResponse>(request);
		}

		public Task<MlDeleteJobResponse> DeleteJobAsync(MlDeleteJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteJobRequest, MlDeleteJobResponse>(request, cancellationToken);
		}

		public MlDeleteJobResponse DeleteJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlDeleteJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteJobRequestDescriptor, MlDeleteJobResponse>(descriptor);
		}

		public MlDeleteJobResponse DeleteJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlDeleteJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteJobRequestDescriptor, MlDeleteJobResponse>(descriptor);
		}

		public Task<MlDeleteJobResponse> DeleteJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteJobRequestDescriptor, MlDeleteJobResponse>(descriptor);
		}

		public Task<MlDeleteJobResponse> DeleteJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlDeleteJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteJobRequestDescriptor, MlDeleteJobResponse>(descriptor);
		}

		public MlDeleteModelSnapshotResponse DeleteModelSnapshot(MlDeleteModelSnapshotRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteModelSnapshotRequest, MlDeleteModelSnapshotResponse>(request);
		}

		public Task<MlDeleteModelSnapshotResponse> DeleteModelSnapshotAsync(MlDeleteModelSnapshotRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteModelSnapshotRequest, MlDeleteModelSnapshotResponse>(request, cancellationToken);
		}

		public MlDeleteModelSnapshotResponse DeleteModelSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id)
		{
			var descriptor = new MlDeleteModelSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteModelSnapshotRequestDescriptor, MlDeleteModelSnapshotResponse>(descriptor);
		}

		public MlDeleteModelSnapshotResponse DeleteModelSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlDeleteModelSnapshotRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteModelSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteModelSnapshotRequestDescriptor, MlDeleteModelSnapshotResponse>(descriptor);
		}

		public Task<MlDeleteModelSnapshotResponse> DeleteModelSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteModelSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteModelSnapshotRequestDescriptor, MlDeleteModelSnapshotResponse>(descriptor);
		}

		public Task<MlDeleteModelSnapshotResponse> DeleteModelSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlDeleteModelSnapshotRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteModelSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteModelSnapshotRequestDescriptor, MlDeleteModelSnapshotResponse>(descriptor);
		}

		public MlDeleteTrainedModelAliasResponse DeleteTrainedModelAlias(MlDeleteTrainedModelAliasRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteTrainedModelAliasRequest, MlDeleteTrainedModelAliasResponse>(request);
		}

		public Task<MlDeleteTrainedModelAliasResponse> DeleteTrainedModelAliasAsync(MlDeleteTrainedModelAliasRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteTrainedModelAliasRequest, MlDeleteTrainedModelAliasResponse>(request, cancellationToken);
		}

		public MlDeleteTrainedModelAliasResponse DeleteTrainedModelAlias(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias)
		{
			var descriptor = new MlDeleteTrainedModelAliasRequestDescriptor(model_id, model_alias);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteTrainedModelAliasRequestDescriptor, MlDeleteTrainedModelAliasResponse>(descriptor);
		}

		public MlDeleteTrainedModelAliasResponse DeleteTrainedModelAlias(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias, Action<MlDeleteTrainedModelAliasRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteTrainedModelAliasRequestDescriptor(model_id, model_alias);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteTrainedModelAliasRequestDescriptor, MlDeleteTrainedModelAliasResponse>(descriptor);
		}

		public Task<MlDeleteTrainedModelAliasResponse> DeleteTrainedModelAliasAsync(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteTrainedModelAliasRequestDescriptor(model_id, model_alias);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteTrainedModelAliasRequestDescriptor, MlDeleteTrainedModelAliasResponse>(descriptor);
		}

		public Task<MlDeleteTrainedModelAliasResponse> DeleteTrainedModelAliasAsync(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias, Action<MlDeleteTrainedModelAliasRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteTrainedModelAliasRequestDescriptor(model_id, model_alias);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteTrainedModelAliasRequestDescriptor, MlDeleteTrainedModelAliasResponse>(descriptor);
		}

		public MlDeleteTrainedModelResponse DeleteTrainedModel(MlDeleteTrainedModelRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlDeleteTrainedModelRequest, MlDeleteTrainedModelResponse>(request);
		}

		public Task<MlDeleteTrainedModelResponse> DeleteTrainedModelAsync(MlDeleteTrainedModelRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlDeleteTrainedModelRequest, MlDeleteTrainedModelResponse>(request, cancellationToken);
		}

		public MlDeleteTrainedModelResponse DeleteTrainedModel(Elastic.Clients.Elasticsearch.Id model_id)
		{
			var descriptor = new MlDeleteTrainedModelRequestDescriptor(model_id);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteTrainedModelRequestDescriptor, MlDeleteTrainedModelResponse>(descriptor);
		}

		public MlDeleteTrainedModelResponse DeleteTrainedModel(Elastic.Clients.Elasticsearch.Id model_id, Action<MlDeleteTrainedModelRequestDescriptor> configureRequest)
		{
			var descriptor = new MlDeleteTrainedModelRequestDescriptor(model_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlDeleteTrainedModelRequestDescriptor, MlDeleteTrainedModelResponse>(descriptor);
		}

		public Task<MlDeleteTrainedModelResponse> DeleteTrainedModelAsync(Elastic.Clients.Elasticsearch.Id model_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteTrainedModelRequestDescriptor(model_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteTrainedModelRequestDescriptor, MlDeleteTrainedModelResponse>(descriptor);
		}

		public Task<MlDeleteTrainedModelResponse> DeleteTrainedModelAsync(Elastic.Clients.Elasticsearch.Id model_id, Action<MlDeleteTrainedModelRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlDeleteTrainedModelRequestDescriptor(model_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlDeleteTrainedModelRequestDescriptor, MlDeleteTrainedModelResponse>(descriptor);
		}

		public MlEstimateModelMemoryResponse EstimateModelMemory(MlEstimateModelMemoryRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlEstimateModelMemoryRequest, MlEstimateModelMemoryResponse>(request);
		}

		public Task<MlEstimateModelMemoryResponse> EstimateModelMemoryAsync(MlEstimateModelMemoryRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlEstimateModelMemoryRequest, MlEstimateModelMemoryResponse>(request, cancellationToken);
		}

		public MlEstimateModelMemoryResponse EstimateModelMemory()
		{
			var descriptor = new MlEstimateModelMemoryRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlEstimateModelMemoryRequestDescriptor, MlEstimateModelMemoryResponse>(descriptor);
		}

		public MlEstimateModelMemoryResponse EstimateModelMemory(Action<MlEstimateModelMemoryRequestDescriptor> configureRequest)
		{
			var descriptor = new MlEstimateModelMemoryRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlEstimateModelMemoryRequestDescriptor, MlEstimateModelMemoryResponse>(descriptor);
		}

		public MlEstimateModelMemoryResponse EstimateModelMemory<TDocument>(Action<MlEstimateModelMemoryRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlEstimateModelMemoryRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlEstimateModelMemoryRequestDescriptor<TDocument>, MlEstimateModelMemoryResponse>(descriptor);
		}

		public Task<MlEstimateModelMemoryResponse> EstimateModelMemoryAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlEstimateModelMemoryRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlEstimateModelMemoryRequestDescriptor, MlEstimateModelMemoryResponse>(descriptor);
		}

		public Task<MlEstimateModelMemoryResponse> EstimateModelMemoryAsync(Action<MlEstimateModelMemoryRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlEstimateModelMemoryRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlEstimateModelMemoryRequestDescriptor, MlEstimateModelMemoryResponse>(descriptor);
		}

		public Task<MlEstimateModelMemoryResponse> EstimateModelMemoryAsync<TDocument>(Action<MlEstimateModelMemoryRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlEstimateModelMemoryRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlEstimateModelMemoryRequestDescriptor<TDocument>, MlEstimateModelMemoryResponse>(descriptor);
		}

		public MlEvaluateDataFrameResponse EvaluateDataFrame(MlEvaluateDataFrameRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlEvaluateDataFrameRequest, MlEvaluateDataFrameResponse>(request);
		}

		public Task<MlEvaluateDataFrameResponse> EvaluateDataFrameAsync(MlEvaluateDataFrameRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlEvaluateDataFrameRequest, MlEvaluateDataFrameResponse>(request, cancellationToken);
		}

		public MlEvaluateDataFrameResponse EvaluateDataFrame()
		{
			var descriptor = new MlEvaluateDataFrameRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlEvaluateDataFrameRequestDescriptor, MlEvaluateDataFrameResponse>(descriptor);
		}

		public MlEvaluateDataFrameResponse EvaluateDataFrame(Action<MlEvaluateDataFrameRequestDescriptor> configureRequest)
		{
			var descriptor = new MlEvaluateDataFrameRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlEvaluateDataFrameRequestDescriptor, MlEvaluateDataFrameResponse>(descriptor);
		}

		public MlEvaluateDataFrameResponse EvaluateDataFrame<TDocument>(Action<MlEvaluateDataFrameRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlEvaluateDataFrameRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlEvaluateDataFrameRequestDescriptor<TDocument>, MlEvaluateDataFrameResponse>(descriptor);
		}

		public Task<MlEvaluateDataFrameResponse> EvaluateDataFrameAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlEvaluateDataFrameRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlEvaluateDataFrameRequestDescriptor, MlEvaluateDataFrameResponse>(descriptor);
		}

		public Task<MlEvaluateDataFrameResponse> EvaluateDataFrameAsync(Action<MlEvaluateDataFrameRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlEvaluateDataFrameRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlEvaluateDataFrameRequestDescriptor, MlEvaluateDataFrameResponse>(descriptor);
		}

		public Task<MlEvaluateDataFrameResponse> EvaluateDataFrameAsync<TDocument>(Action<MlEvaluateDataFrameRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlEvaluateDataFrameRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlEvaluateDataFrameRequestDescriptor<TDocument>, MlEvaluateDataFrameResponse>(descriptor);
		}

		public MlExplainDataFrameAnalyticsResponse ExplainDataFrameAnalytics(MlExplainDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlExplainDataFrameAnalyticsRequest, MlExplainDataFrameAnalyticsResponse>(request);
		}

		public Task<MlExplainDataFrameAnalyticsResponse> ExplainDataFrameAnalyticsAsync(MlExplainDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlExplainDataFrameAnalyticsRequest, MlExplainDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlExplainDataFrameAnalyticsResponse ExplainDataFrameAnalytics()
		{
			var descriptor = new MlExplainDataFrameAnalyticsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlExplainDataFrameAnalyticsRequestDescriptor, MlExplainDataFrameAnalyticsResponse>(descriptor);
		}

		public MlExplainDataFrameAnalyticsResponse ExplainDataFrameAnalytics(Action<MlExplainDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlExplainDataFrameAnalyticsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlExplainDataFrameAnalyticsRequestDescriptor, MlExplainDataFrameAnalyticsResponse>(descriptor);
		}

		public MlExplainDataFrameAnalyticsResponse ExplainDataFrameAnalytics<TDocument>(Action<MlExplainDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlExplainDataFrameAnalyticsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlExplainDataFrameAnalyticsRequestDescriptor<TDocument>, MlExplainDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlExplainDataFrameAnalyticsResponse> ExplainDataFrameAnalyticsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlExplainDataFrameAnalyticsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlExplainDataFrameAnalyticsRequestDescriptor, MlExplainDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlExplainDataFrameAnalyticsResponse> ExplainDataFrameAnalyticsAsync(Action<MlExplainDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlExplainDataFrameAnalyticsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlExplainDataFrameAnalyticsRequestDescriptor, MlExplainDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlExplainDataFrameAnalyticsResponse> ExplainDataFrameAnalyticsAsync<TDocument>(Action<MlExplainDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlExplainDataFrameAnalyticsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlExplainDataFrameAnalyticsRequestDescriptor<TDocument>, MlExplainDataFrameAnalyticsResponse>(descriptor);
		}

		public MlFlushJobResponse FlushJob(MlFlushJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlFlushJobRequest, MlFlushJobResponse>(request);
		}

		public Task<MlFlushJobResponse> FlushJobAsync(MlFlushJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlFlushJobRequest, MlFlushJobResponse>(request, cancellationToken);
		}

		public MlFlushJobResponse FlushJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlFlushJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlFlushJobRequestDescriptor, MlFlushJobResponse>(descriptor);
		}

		public MlFlushJobResponse FlushJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlFlushJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlFlushJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlFlushJobRequestDescriptor, MlFlushJobResponse>(descriptor);
		}

		public MlFlushJobResponse FlushJob<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlFlushJobRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlFlushJobRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlFlushJobRequestDescriptor<TDocument>, MlFlushJobResponse>(descriptor);
		}

		public Task<MlFlushJobResponse> FlushJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlFlushJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlFlushJobRequestDescriptor, MlFlushJobResponse>(descriptor);
		}

		public Task<MlFlushJobResponse> FlushJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlFlushJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlFlushJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlFlushJobRequestDescriptor, MlFlushJobResponse>(descriptor);
		}

		public Task<MlFlushJobResponse> FlushJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlFlushJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlFlushJobRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlFlushJobRequestDescriptor<TDocument>, MlFlushJobResponse>(descriptor);
		}

		public MlForecastResponse Forecast(MlForecastRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlForecastRequest, MlForecastResponse>(request);
		}

		public Task<MlForecastResponse> ForecastAsync(MlForecastRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlForecastRequest, MlForecastResponse>(request, cancellationToken);
		}

		public MlForecastResponse Forecast(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlForecastRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlForecastRequestDescriptor, MlForecastResponse>(descriptor);
		}

		public MlForecastResponse Forecast(Elastic.Clients.Elasticsearch.Id job_id, Action<MlForecastRequestDescriptor> configureRequest)
		{
			var descriptor = new MlForecastRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlForecastRequestDescriptor, MlForecastResponse>(descriptor);
		}

		public Task<MlForecastResponse> ForecastAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlForecastRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlForecastRequestDescriptor, MlForecastResponse>(descriptor);
		}

		public Task<MlForecastResponse> ForecastAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlForecastRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlForecastRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlForecastRequestDescriptor, MlForecastResponse>(descriptor);
		}

		public MlGetCalendarEventsResponse GetCalendarEvents(MlGetCalendarEventsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetCalendarEventsRequest, MlGetCalendarEventsResponse>(request);
		}

		public Task<MlGetCalendarEventsResponse> GetCalendarEventsAsync(MlGetCalendarEventsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetCalendarEventsRequest, MlGetCalendarEventsResponse>(request, cancellationToken);
		}

		public MlGetCalendarEventsResponse GetCalendarEvents(Elastic.Clients.Elasticsearch.Id calendar_id)
		{
			var descriptor = new MlGetCalendarEventsRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequest<MlGetCalendarEventsRequestDescriptor, MlGetCalendarEventsResponse>(descriptor);
		}

		public MlGetCalendarEventsResponse GetCalendarEvents(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlGetCalendarEventsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetCalendarEventsRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetCalendarEventsRequestDescriptor, MlGetCalendarEventsResponse>(descriptor);
		}

		public Task<MlGetCalendarEventsResponse> GetCalendarEventsAsync(Elastic.Clients.Elasticsearch.Id calendar_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetCalendarEventsRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetCalendarEventsRequestDescriptor, MlGetCalendarEventsResponse>(descriptor);
		}

		public Task<MlGetCalendarEventsResponse> GetCalendarEventsAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlGetCalendarEventsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetCalendarEventsRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetCalendarEventsRequestDescriptor, MlGetCalendarEventsResponse>(descriptor);
		}

		public MlGetCalendarsResponse GetCalendars(MlGetCalendarsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetCalendarsRequest, MlGetCalendarsResponse>(request);
		}

		public Task<MlGetCalendarsResponse> GetCalendarsAsync(MlGetCalendarsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetCalendarsRequest, MlGetCalendarsResponse>(request, cancellationToken);
		}

		public MlGetCalendarsResponse GetCalendars()
		{
			var descriptor = new MlGetCalendarsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlGetCalendarsRequestDescriptor, MlGetCalendarsResponse>(descriptor);
		}

		public MlGetCalendarsResponse GetCalendars(Action<MlGetCalendarsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetCalendarsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetCalendarsRequestDescriptor, MlGetCalendarsResponse>(descriptor);
		}

		public Task<MlGetCalendarsResponse> GetCalendarsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetCalendarsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetCalendarsRequestDescriptor, MlGetCalendarsResponse>(descriptor);
		}

		public Task<MlGetCalendarsResponse> GetCalendarsAsync(Action<MlGetCalendarsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetCalendarsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetCalendarsRequestDescriptor, MlGetCalendarsResponse>(descriptor);
		}

		public MlGetDataFrameAnalyticsResponse GetDataFrameAnalytics(MlGetDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsRequest, MlGetDataFrameAnalyticsResponse>(request);
		}

		public Task<MlGetDataFrameAnalyticsResponse> GetDataFrameAnalyticsAsync(MlGetDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsRequest, MlGetDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlGetDataFrameAnalyticsResponse GetDataFrameAnalytics()
		{
			var descriptor = new MlGetDataFrameAnalyticsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsRequestDescriptor, MlGetDataFrameAnalyticsResponse>(descriptor);
		}

		public MlGetDataFrameAnalyticsResponse GetDataFrameAnalytics(Action<MlGetDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetDataFrameAnalyticsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsRequestDescriptor, MlGetDataFrameAnalyticsResponse>(descriptor);
		}

		public MlGetDataFrameAnalyticsResponse GetDataFrameAnalytics<TDocument>(Action<MlGetDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlGetDataFrameAnalyticsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsRequestDescriptor<TDocument>, MlGetDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlGetDataFrameAnalyticsResponse> GetDataFrameAnalyticsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetDataFrameAnalyticsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsRequestDescriptor, MlGetDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlGetDataFrameAnalyticsResponse> GetDataFrameAnalyticsAsync(Action<MlGetDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetDataFrameAnalyticsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsRequestDescriptor, MlGetDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlGetDataFrameAnalyticsResponse> GetDataFrameAnalyticsAsync<TDocument>(Action<MlGetDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetDataFrameAnalyticsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsRequestDescriptor<TDocument>, MlGetDataFrameAnalyticsResponse>(descriptor);
		}

		public MlGetDataFrameAnalyticsStatsResponse GetDataFrameAnalyticsStats(MlGetDataFrameAnalyticsStatsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsStatsRequest, MlGetDataFrameAnalyticsStatsResponse>(request);
		}

		public Task<MlGetDataFrameAnalyticsStatsResponse> GetDataFrameAnalyticsStatsAsync(MlGetDataFrameAnalyticsStatsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsStatsRequest, MlGetDataFrameAnalyticsStatsResponse>(request, cancellationToken);
		}

		public MlGetDataFrameAnalyticsStatsResponse GetDataFrameAnalyticsStats()
		{
			var descriptor = new MlGetDataFrameAnalyticsStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsStatsRequestDescriptor, MlGetDataFrameAnalyticsStatsResponse>(descriptor);
		}

		public MlGetDataFrameAnalyticsStatsResponse GetDataFrameAnalyticsStats(Action<MlGetDataFrameAnalyticsStatsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetDataFrameAnalyticsStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsStatsRequestDescriptor, MlGetDataFrameAnalyticsStatsResponse>(descriptor);
		}

		public MlGetDataFrameAnalyticsStatsResponse GetDataFrameAnalyticsStats<TDocument>(Action<MlGetDataFrameAnalyticsStatsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlGetDataFrameAnalyticsStatsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetDataFrameAnalyticsStatsRequestDescriptor<TDocument>, MlGetDataFrameAnalyticsStatsResponse>(descriptor);
		}

		public Task<MlGetDataFrameAnalyticsStatsResponse> GetDataFrameAnalyticsStatsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetDataFrameAnalyticsStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsStatsRequestDescriptor, MlGetDataFrameAnalyticsStatsResponse>(descriptor);
		}

		public Task<MlGetDataFrameAnalyticsStatsResponse> GetDataFrameAnalyticsStatsAsync(Action<MlGetDataFrameAnalyticsStatsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetDataFrameAnalyticsStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsStatsRequestDescriptor, MlGetDataFrameAnalyticsStatsResponse>(descriptor);
		}

		public Task<MlGetDataFrameAnalyticsStatsResponse> GetDataFrameAnalyticsStatsAsync<TDocument>(Action<MlGetDataFrameAnalyticsStatsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetDataFrameAnalyticsStatsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetDataFrameAnalyticsStatsRequestDescriptor<TDocument>, MlGetDataFrameAnalyticsStatsResponse>(descriptor);
		}

		public MlGetInfluencersResponse GetInfluencers(MlGetInfluencersRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetInfluencersRequest, MlGetInfluencersResponse>(request);
		}

		public Task<MlGetInfluencersResponse> GetInfluencersAsync(MlGetInfluencersRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetInfluencersRequest, MlGetInfluencersResponse>(request, cancellationToken);
		}

		public MlGetInfluencersResponse GetInfluencers(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlGetInfluencersRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlGetInfluencersRequestDescriptor, MlGetInfluencersResponse>(descriptor);
		}

		public MlGetInfluencersResponse GetInfluencers(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetInfluencersRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetInfluencersRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetInfluencersRequestDescriptor, MlGetInfluencersResponse>(descriptor);
		}

		public MlGetInfluencersResponse GetInfluencers<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetInfluencersRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlGetInfluencersRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetInfluencersRequestDescriptor<TDocument>, MlGetInfluencersResponse>(descriptor);
		}

		public Task<MlGetInfluencersResponse> GetInfluencersAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetInfluencersRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetInfluencersRequestDescriptor, MlGetInfluencersResponse>(descriptor);
		}

		public Task<MlGetInfluencersResponse> GetInfluencersAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetInfluencersRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetInfluencersRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetInfluencersRequestDescriptor, MlGetInfluencersResponse>(descriptor);
		}

		public Task<MlGetInfluencersResponse> GetInfluencersAsync<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetInfluencersRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetInfluencersRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetInfluencersRequestDescriptor<TDocument>, MlGetInfluencersResponse>(descriptor);
		}

		public MlGetJobStatsResponse GetJobStats(MlGetJobStatsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetJobStatsRequest, MlGetJobStatsResponse>(request);
		}

		public Task<MlGetJobStatsResponse> GetJobStatsAsync(MlGetJobStatsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetJobStatsRequest, MlGetJobStatsResponse>(request, cancellationToken);
		}

		public MlGetJobStatsResponse GetJobStats()
		{
			var descriptor = new MlGetJobStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlGetJobStatsRequestDescriptor, MlGetJobStatsResponse>(descriptor);
		}

		public MlGetJobStatsResponse GetJobStats(Action<MlGetJobStatsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetJobStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetJobStatsRequestDescriptor, MlGetJobStatsResponse>(descriptor);
		}

		public Task<MlGetJobStatsResponse> GetJobStatsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetJobStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetJobStatsRequestDescriptor, MlGetJobStatsResponse>(descriptor);
		}

		public Task<MlGetJobStatsResponse> GetJobStatsAsync(Action<MlGetJobStatsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetJobStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetJobStatsRequestDescriptor, MlGetJobStatsResponse>(descriptor);
		}

		public MlGetMemoryStatsResponse GetMemoryStats(MlGetMemoryStatsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetMemoryStatsRequest, MlGetMemoryStatsResponse>(request);
		}

		public Task<MlGetMemoryStatsResponse> GetMemoryStatsAsync(MlGetMemoryStatsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetMemoryStatsRequest, MlGetMemoryStatsResponse>(request, cancellationToken);
		}

		public MlGetMemoryStatsResponse GetMemoryStats()
		{
			var descriptor = new MlGetMemoryStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlGetMemoryStatsRequestDescriptor, MlGetMemoryStatsResponse>(descriptor);
		}

		public MlGetMemoryStatsResponse GetMemoryStats(Action<MlGetMemoryStatsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetMemoryStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetMemoryStatsRequestDescriptor, MlGetMemoryStatsResponse>(descriptor);
		}

		public Task<MlGetMemoryStatsResponse> GetMemoryStatsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetMemoryStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetMemoryStatsRequestDescriptor, MlGetMemoryStatsResponse>(descriptor);
		}

		public Task<MlGetMemoryStatsResponse> GetMemoryStatsAsync(Action<MlGetMemoryStatsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetMemoryStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetMemoryStatsRequestDescriptor, MlGetMemoryStatsResponse>(descriptor);
		}

		public MlGetModelSnapshotsResponse GetModelSnapshots(MlGetModelSnapshotsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetModelSnapshotsRequest, MlGetModelSnapshotsResponse>(request);
		}

		public Task<MlGetModelSnapshotsResponse> GetModelSnapshotsAsync(MlGetModelSnapshotsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetModelSnapshotsRequest, MlGetModelSnapshotsResponse>(request, cancellationToken);
		}

		public MlGetModelSnapshotsResponse GetModelSnapshots(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlGetModelSnapshotsRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlGetModelSnapshotsRequestDescriptor, MlGetModelSnapshotsResponse>(descriptor);
		}

		public MlGetModelSnapshotsResponse GetModelSnapshots(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetModelSnapshotsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetModelSnapshotsRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetModelSnapshotsRequestDescriptor, MlGetModelSnapshotsResponse>(descriptor);
		}

		public MlGetModelSnapshotsResponse GetModelSnapshots<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetModelSnapshotsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlGetModelSnapshotsRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetModelSnapshotsRequestDescriptor<TDocument>, MlGetModelSnapshotsResponse>(descriptor);
		}

		public Task<MlGetModelSnapshotsResponse> GetModelSnapshotsAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetModelSnapshotsRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetModelSnapshotsRequestDescriptor, MlGetModelSnapshotsResponse>(descriptor);
		}

		public Task<MlGetModelSnapshotsResponse> GetModelSnapshotsAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetModelSnapshotsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetModelSnapshotsRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetModelSnapshotsRequestDescriptor, MlGetModelSnapshotsResponse>(descriptor);
		}

		public Task<MlGetModelSnapshotsResponse> GetModelSnapshotsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetModelSnapshotsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetModelSnapshotsRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetModelSnapshotsRequestDescriptor<TDocument>, MlGetModelSnapshotsResponse>(descriptor);
		}

		public MlGetOverallBucketsResponse GetOverallBuckets(MlGetOverallBucketsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetOverallBucketsRequest, MlGetOverallBucketsResponse>(request);
		}

		public Task<MlGetOverallBucketsResponse> GetOverallBucketsAsync(MlGetOverallBucketsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetOverallBucketsRequest, MlGetOverallBucketsResponse>(request, cancellationToken);
		}

		public MlGetOverallBucketsResponse GetOverallBuckets(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlGetOverallBucketsRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlGetOverallBucketsRequestDescriptor, MlGetOverallBucketsResponse>(descriptor);
		}

		public MlGetOverallBucketsResponse GetOverallBuckets(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetOverallBucketsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetOverallBucketsRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetOverallBucketsRequestDescriptor, MlGetOverallBucketsResponse>(descriptor);
		}

		public Task<MlGetOverallBucketsResponse> GetOverallBucketsAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetOverallBucketsRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetOverallBucketsRequestDescriptor, MlGetOverallBucketsResponse>(descriptor);
		}

		public Task<MlGetOverallBucketsResponse> GetOverallBucketsAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetOverallBucketsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetOverallBucketsRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetOverallBucketsRequestDescriptor, MlGetOverallBucketsResponse>(descriptor);
		}

		public MlGetRecordsResponse GetRecords(MlGetRecordsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetRecordsRequest, MlGetRecordsResponse>(request);
		}

		public Task<MlGetRecordsResponse> GetRecordsAsync(MlGetRecordsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetRecordsRequest, MlGetRecordsResponse>(request, cancellationToken);
		}

		public MlGetRecordsResponse GetRecords(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlGetRecordsRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlGetRecordsRequestDescriptor, MlGetRecordsResponse>(descriptor);
		}

		public MlGetRecordsResponse GetRecords(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetRecordsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetRecordsRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetRecordsRequestDescriptor, MlGetRecordsResponse>(descriptor);
		}

		public MlGetRecordsResponse GetRecords<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetRecordsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlGetRecordsRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetRecordsRequestDescriptor<TDocument>, MlGetRecordsResponse>(descriptor);
		}

		public Task<MlGetRecordsResponse> GetRecordsAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetRecordsRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetRecordsRequestDescriptor, MlGetRecordsResponse>(descriptor);
		}

		public Task<MlGetRecordsResponse> GetRecordsAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetRecordsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetRecordsRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetRecordsRequestDescriptor, MlGetRecordsResponse>(descriptor);
		}

		public Task<MlGetRecordsResponse> GetRecordsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlGetRecordsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetRecordsRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetRecordsRequestDescriptor<TDocument>, MlGetRecordsResponse>(descriptor);
		}

		public MlGetTrainedModelsStatsResponse GetTrainedModelsStats(MlGetTrainedModelsStatsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlGetTrainedModelsStatsRequest, MlGetTrainedModelsStatsResponse>(request);
		}

		public Task<MlGetTrainedModelsStatsResponse> GetTrainedModelsStatsAsync(MlGetTrainedModelsStatsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlGetTrainedModelsStatsRequest, MlGetTrainedModelsStatsResponse>(request, cancellationToken);
		}

		public MlGetTrainedModelsStatsResponse GetTrainedModelsStats()
		{
			var descriptor = new MlGetTrainedModelsStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlGetTrainedModelsStatsRequestDescriptor, MlGetTrainedModelsStatsResponse>(descriptor);
		}

		public MlGetTrainedModelsStatsResponse GetTrainedModelsStats(Action<MlGetTrainedModelsStatsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlGetTrainedModelsStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlGetTrainedModelsStatsRequestDescriptor, MlGetTrainedModelsStatsResponse>(descriptor);
		}

		public Task<MlGetTrainedModelsStatsResponse> GetTrainedModelsStatsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetTrainedModelsStatsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetTrainedModelsStatsRequestDescriptor, MlGetTrainedModelsStatsResponse>(descriptor);
		}

		public Task<MlGetTrainedModelsStatsResponse> GetTrainedModelsStatsAsync(Action<MlGetTrainedModelsStatsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlGetTrainedModelsStatsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlGetTrainedModelsStatsRequestDescriptor, MlGetTrainedModelsStatsResponse>(descriptor);
		}

		public MlInfoResponse Info(MlInfoRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlInfoRequest, MlInfoResponse>(request);
		}

		public Task<MlInfoResponse> InfoAsync(MlInfoRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlInfoRequest, MlInfoResponse>(request, cancellationToken);
		}

		public MlInfoResponse Info()
		{
			var descriptor = new MlInfoRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlInfoRequestDescriptor, MlInfoResponse>(descriptor);
		}

		public MlInfoResponse Info(Action<MlInfoRequestDescriptor> configureRequest)
		{
			var descriptor = new MlInfoRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlInfoRequestDescriptor, MlInfoResponse>(descriptor);
		}

		public Task<MlInfoResponse> InfoAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlInfoRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlInfoRequestDescriptor, MlInfoResponse>(descriptor);
		}

		public Task<MlInfoResponse> InfoAsync(Action<MlInfoRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlInfoRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlInfoRequestDescriptor, MlInfoResponse>(descriptor);
		}

		public MlOpenJobResponse OpenJob(MlOpenJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlOpenJobRequest, MlOpenJobResponse>(request);
		}

		public Task<MlOpenJobResponse> OpenJobAsync(MlOpenJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlOpenJobRequest, MlOpenJobResponse>(request, cancellationToken);
		}

		public MlOpenJobResponse OpenJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlOpenJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlOpenJobRequestDescriptor, MlOpenJobResponse>(descriptor);
		}

		public MlOpenJobResponse OpenJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlOpenJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlOpenJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlOpenJobRequestDescriptor, MlOpenJobResponse>(descriptor);
		}

		public Task<MlOpenJobResponse> OpenJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlOpenJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlOpenJobRequestDescriptor, MlOpenJobResponse>(descriptor);
		}

		public Task<MlOpenJobResponse> OpenJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlOpenJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlOpenJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlOpenJobRequestDescriptor, MlOpenJobResponse>(descriptor);
		}

		public MlPostCalendarEventsResponse PostCalendarEvents(MlPostCalendarEventsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPostCalendarEventsRequest, MlPostCalendarEventsResponse>(request);
		}

		public Task<MlPostCalendarEventsResponse> PostCalendarEventsAsync(MlPostCalendarEventsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPostCalendarEventsRequest, MlPostCalendarEventsResponse>(request, cancellationToken);
		}

		public MlPostCalendarEventsResponse PostCalendarEvents(Elastic.Clients.Elasticsearch.Id calendar_id)
		{
			var descriptor = new MlPostCalendarEventsRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPostCalendarEventsRequestDescriptor, MlPostCalendarEventsResponse>(descriptor);
		}

		public MlPostCalendarEventsResponse PostCalendarEvents(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlPostCalendarEventsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPostCalendarEventsRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPostCalendarEventsRequestDescriptor, MlPostCalendarEventsResponse>(descriptor);
		}

		public Task<MlPostCalendarEventsResponse> PostCalendarEventsAsync(Elastic.Clients.Elasticsearch.Id calendar_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPostCalendarEventsRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPostCalendarEventsRequestDescriptor, MlPostCalendarEventsResponse>(descriptor);
		}

		public Task<MlPostCalendarEventsResponse> PostCalendarEventsAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlPostCalendarEventsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPostCalendarEventsRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPostCalendarEventsRequestDescriptor, MlPostCalendarEventsResponse>(descriptor);
		}

		public MlPreviewDatafeedResponse<TDocument> PreviewDatafeed<TDocument>(MlPreviewDatafeedRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPreviewDatafeedRequest, MlPreviewDatafeedResponse<TDocument>>(request);
		}

		public Task<MlPreviewDatafeedResponse<TDocument>> PreviewDatafeedAsync<TDocument>(MlPreviewDatafeedRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPreviewDatafeedRequest, MlPreviewDatafeedResponse<TDocument>>(request, cancellationToken);
		}

		public MlPreviewDatafeedResponse<TDocument> PreviewDatafeed<TDocument>()
		{
			var descriptor = new MlPreviewDatafeedRequestDescriptor<TDocument>();
			descriptor.BeforeRequest();
			return DoRequest<MlPreviewDatafeedRequestDescriptor<TDocument>, MlPreviewDatafeedResponse<TDocument>>(descriptor);
		}

		public MlPreviewDatafeedResponse<TDocument> PreviewDatafeed<TDocument>(Action<MlPreviewDatafeedRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlPreviewDatafeedRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPreviewDatafeedRequestDescriptor<TDocument>, MlPreviewDatafeedResponse<TDocument>>(descriptor);
		}

		public Task<MlPreviewDatafeedResponse<TDocument>> PreviewDatafeedAsync<TDocument>(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPreviewDatafeedRequestDescriptor<TDocument>();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPreviewDatafeedRequestDescriptor<TDocument>, MlPreviewDatafeedResponse<TDocument>>(descriptor);
		}

		public Task<MlPreviewDatafeedResponse<TDocument>> PreviewDatafeedAsync<TDocument>(Action<MlPreviewDatafeedRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPreviewDatafeedRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPreviewDatafeedRequestDescriptor<TDocument>, MlPreviewDatafeedResponse<TDocument>>(descriptor);
		}

		public MlPreviewDataFrameAnalyticsResponse PreviewDataFrameAnalytics(MlPreviewDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPreviewDataFrameAnalyticsRequest, MlPreviewDataFrameAnalyticsResponse>(request);
		}

		public Task<MlPreviewDataFrameAnalyticsResponse> PreviewDataFrameAnalyticsAsync(MlPreviewDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPreviewDataFrameAnalyticsRequest, MlPreviewDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlPreviewDataFrameAnalyticsResponse PreviewDataFrameAnalytics()
		{
			var descriptor = new MlPreviewDataFrameAnalyticsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlPreviewDataFrameAnalyticsRequestDescriptor, MlPreviewDataFrameAnalyticsResponse>(descriptor);
		}

		public MlPreviewDataFrameAnalyticsResponse PreviewDataFrameAnalytics(Action<MlPreviewDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPreviewDataFrameAnalyticsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPreviewDataFrameAnalyticsRequestDescriptor, MlPreviewDataFrameAnalyticsResponse>(descriptor);
		}

		public MlPreviewDataFrameAnalyticsResponse PreviewDataFrameAnalytics<TDocument>(Action<MlPreviewDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlPreviewDataFrameAnalyticsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPreviewDataFrameAnalyticsRequestDescriptor<TDocument>, MlPreviewDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlPreviewDataFrameAnalyticsResponse> PreviewDataFrameAnalyticsAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPreviewDataFrameAnalyticsRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPreviewDataFrameAnalyticsRequestDescriptor, MlPreviewDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlPreviewDataFrameAnalyticsResponse> PreviewDataFrameAnalyticsAsync(Action<MlPreviewDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPreviewDataFrameAnalyticsRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPreviewDataFrameAnalyticsRequestDescriptor, MlPreviewDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlPreviewDataFrameAnalyticsResponse> PreviewDataFrameAnalyticsAsync<TDocument>(Action<MlPreviewDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPreviewDataFrameAnalyticsRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPreviewDataFrameAnalyticsRequestDescriptor<TDocument>, MlPreviewDataFrameAnalyticsResponse>(descriptor);
		}

		public MlPutCalendarJobResponse PutCalendarJob(MlPutCalendarJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutCalendarJobRequest, MlPutCalendarJobResponse>(request);
		}

		public Task<MlPutCalendarJobResponse> PutCalendarJobAsync(MlPutCalendarJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutCalendarJobRequest, MlPutCalendarJobResponse>(request, cancellationToken);
		}

		public MlPutCalendarJobResponse PutCalendarJob(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlPutCalendarJobRequestDescriptor(calendar_id, job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutCalendarJobRequestDescriptor, MlPutCalendarJobResponse>(descriptor);
		}

		public MlPutCalendarJobResponse PutCalendarJob(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id job_id, Action<MlPutCalendarJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutCalendarJobRequestDescriptor(calendar_id, job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutCalendarJobRequestDescriptor, MlPutCalendarJobResponse>(descriptor);
		}

		public Task<MlPutCalendarJobResponse> PutCalendarJobAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutCalendarJobRequestDescriptor(calendar_id, job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutCalendarJobRequestDescriptor, MlPutCalendarJobResponse>(descriptor);
		}

		public Task<MlPutCalendarJobResponse> PutCalendarJobAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Elastic.Clients.Elasticsearch.Id job_id, Action<MlPutCalendarJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutCalendarJobRequestDescriptor(calendar_id, job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutCalendarJobRequestDescriptor, MlPutCalendarJobResponse>(descriptor);
		}

		public MlPutCalendarResponse PutCalendar(MlPutCalendarRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutCalendarRequest, MlPutCalendarResponse>(request);
		}

		public Task<MlPutCalendarResponse> PutCalendarAsync(MlPutCalendarRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutCalendarRequest, MlPutCalendarResponse>(request, cancellationToken);
		}

		public MlPutCalendarResponse PutCalendar(Elastic.Clients.Elasticsearch.Id calendar_id)
		{
			var descriptor = new MlPutCalendarRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutCalendarRequestDescriptor, MlPutCalendarResponse>(descriptor);
		}

		public MlPutCalendarResponse PutCalendar(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlPutCalendarRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutCalendarRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutCalendarRequestDescriptor, MlPutCalendarResponse>(descriptor);
		}

		public Task<MlPutCalendarResponse> PutCalendarAsync(Elastic.Clients.Elasticsearch.Id calendar_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutCalendarRequestDescriptor(calendar_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutCalendarRequestDescriptor, MlPutCalendarResponse>(descriptor);
		}

		public Task<MlPutCalendarResponse> PutCalendarAsync(Elastic.Clients.Elasticsearch.Id calendar_id, Action<MlPutCalendarRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutCalendarRequestDescriptor(calendar_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutCalendarRequestDescriptor, MlPutCalendarResponse>(descriptor);
		}

		public MlPutDatafeedResponse PutDatafeed(MlPutDatafeedRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutDatafeedRequest, MlPutDatafeedResponse>(request);
		}

		public Task<MlPutDatafeedResponse> PutDatafeedAsync(MlPutDatafeedRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutDatafeedRequest, MlPutDatafeedResponse>(request, cancellationToken);
		}

		public MlPutDatafeedResponse PutDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id)
		{
			var descriptor = new MlPutDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutDatafeedRequestDescriptor, MlPutDatafeedResponse>(descriptor);
		}

		public MlPutDatafeedResponse PutDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlPutDatafeedRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutDatafeedRequestDescriptor, MlPutDatafeedResponse>(descriptor);
		}

		public MlPutDatafeedResponse PutDatafeed<TDocument>(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlPutDatafeedRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlPutDatafeedRequestDescriptor<TDocument>(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutDatafeedRequestDescriptor<TDocument>, MlPutDatafeedResponse>(descriptor);
		}

		public Task<MlPutDatafeedResponse> PutDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutDatafeedRequestDescriptor, MlPutDatafeedResponse>(descriptor);
		}

		public Task<MlPutDatafeedResponse> PutDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlPutDatafeedRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutDatafeedRequestDescriptor, MlPutDatafeedResponse>(descriptor);
		}

		public Task<MlPutDatafeedResponse> PutDatafeedAsync<TDocument>(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlPutDatafeedRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutDatafeedRequestDescriptor<TDocument>(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutDatafeedRequestDescriptor<TDocument>, MlPutDatafeedResponse>(descriptor);
		}

		public MlPutDataFrameAnalyticsResponse PutDataFrameAnalytics(MlPutDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutDataFrameAnalyticsRequest, MlPutDataFrameAnalyticsResponse>(request);
		}

		public Task<MlPutDataFrameAnalyticsResponse> PutDataFrameAnalyticsAsync(MlPutDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutDataFrameAnalyticsRequest, MlPutDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlPutDataFrameAnalyticsResponse PutDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id)
		{
			var descriptor = new MlPutDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutDataFrameAnalyticsRequestDescriptor, MlPutDataFrameAnalyticsResponse>(descriptor);
		}

		public MlPutDataFrameAnalyticsResponse PutDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id, Action<MlPutDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutDataFrameAnalyticsRequestDescriptor, MlPutDataFrameAnalyticsResponse>(descriptor);
		}

		public MlPutDataFrameAnalyticsResponse PutDataFrameAnalytics<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlPutDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlPutDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutDataFrameAnalyticsRequestDescriptor<TDocument>, MlPutDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlPutDataFrameAnalyticsResponse> PutDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutDataFrameAnalyticsRequestDescriptor, MlPutDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlPutDataFrameAnalyticsResponse> PutDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, Action<MlPutDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutDataFrameAnalyticsRequestDescriptor, MlPutDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlPutDataFrameAnalyticsResponse> PutDataFrameAnalyticsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlPutDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutDataFrameAnalyticsRequestDescriptor<TDocument>, MlPutDataFrameAnalyticsResponse>(descriptor);
		}

		public MlPutFilterResponse PutFilter(MlPutFilterRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutFilterRequest, MlPutFilterResponse>(request);
		}

		public Task<MlPutFilterResponse> PutFilterAsync(MlPutFilterRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutFilterRequest, MlPutFilterResponse>(request, cancellationToken);
		}

		public MlPutFilterResponse PutFilter(Elastic.Clients.Elasticsearch.Id filter_id)
		{
			var descriptor = new MlPutFilterRequestDescriptor(filter_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutFilterRequestDescriptor, MlPutFilterResponse>(descriptor);
		}

		public MlPutFilterResponse PutFilter(Elastic.Clients.Elasticsearch.Id filter_id, Action<MlPutFilterRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutFilterRequestDescriptor(filter_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutFilterRequestDescriptor, MlPutFilterResponse>(descriptor);
		}

		public Task<MlPutFilterResponse> PutFilterAsync(Elastic.Clients.Elasticsearch.Id filter_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutFilterRequestDescriptor(filter_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutFilterRequestDescriptor, MlPutFilterResponse>(descriptor);
		}

		public Task<MlPutFilterResponse> PutFilterAsync(Elastic.Clients.Elasticsearch.Id filter_id, Action<MlPutFilterRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutFilterRequestDescriptor(filter_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutFilterRequestDescriptor, MlPutFilterResponse>(descriptor);
		}

		public MlPutJobResponse PutJob(MlPutJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutJobRequest, MlPutJobResponse>(request);
		}

		public Task<MlPutJobResponse> PutJobAsync(MlPutJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutJobRequest, MlPutJobResponse>(request, cancellationToken);
		}

		public MlPutJobResponse PutJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlPutJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutJobRequestDescriptor, MlPutJobResponse>(descriptor);
		}

		public MlPutJobResponse PutJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlPutJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutJobRequestDescriptor, MlPutJobResponse>(descriptor);
		}

		public MlPutJobResponse PutJob<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlPutJobRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlPutJobRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutJobRequestDescriptor<TDocument>, MlPutJobResponse>(descriptor);
		}

		public Task<MlPutJobResponse> PutJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutJobRequestDescriptor, MlPutJobResponse>(descriptor);
		}

		public Task<MlPutJobResponse> PutJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlPutJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutJobRequestDescriptor, MlPutJobResponse>(descriptor);
		}

		public Task<MlPutJobResponse> PutJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlPutJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutJobRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutJobRequestDescriptor<TDocument>, MlPutJobResponse>(descriptor);
		}

		public MlPutTrainedModelAliasResponse PutTrainedModelAlias(MlPutTrainedModelAliasRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutTrainedModelAliasRequest, MlPutTrainedModelAliasResponse>(request);
		}

		public Task<MlPutTrainedModelAliasResponse> PutTrainedModelAliasAsync(MlPutTrainedModelAliasRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelAliasRequest, MlPutTrainedModelAliasResponse>(request, cancellationToken);
		}

		public MlPutTrainedModelAliasResponse PutTrainedModelAlias(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias)
		{
			var descriptor = new MlPutTrainedModelAliasRequestDescriptor(model_id, model_alias);
			descriptor.BeforeRequest();
			return DoRequest<MlPutTrainedModelAliasRequestDescriptor, MlPutTrainedModelAliasResponse>(descriptor);
		}

		public MlPutTrainedModelAliasResponse PutTrainedModelAlias(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias, Action<MlPutTrainedModelAliasRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutTrainedModelAliasRequestDescriptor(model_id, model_alias);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutTrainedModelAliasRequestDescriptor, MlPutTrainedModelAliasResponse>(descriptor);
		}

		public Task<MlPutTrainedModelAliasResponse> PutTrainedModelAliasAsync(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutTrainedModelAliasRequestDescriptor(model_id, model_alias);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelAliasRequestDescriptor, MlPutTrainedModelAliasResponse>(descriptor);
		}

		public Task<MlPutTrainedModelAliasResponse> PutTrainedModelAliasAsync(Elastic.Clients.Elasticsearch.Id model_id, Elastic.Clients.Elasticsearch.Name model_alias, Action<MlPutTrainedModelAliasRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutTrainedModelAliasRequestDescriptor(model_id, model_alias);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelAliasRequestDescriptor, MlPutTrainedModelAliasResponse>(descriptor);
		}

		public MlPutTrainedModelResponse PutTrainedModel(MlPutTrainedModelRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlPutTrainedModelRequest, MlPutTrainedModelResponse>(request);
		}

		public Task<MlPutTrainedModelResponse> PutTrainedModelAsync(MlPutTrainedModelRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelRequest, MlPutTrainedModelResponse>(request, cancellationToken);
		}

		public MlPutTrainedModelResponse PutTrainedModel(Elastic.Clients.Elasticsearch.Id model_id)
		{
			var descriptor = new MlPutTrainedModelRequestDescriptor(model_id);
			descriptor.BeforeRequest();
			return DoRequest<MlPutTrainedModelRequestDescriptor, MlPutTrainedModelResponse>(descriptor);
		}

		public MlPutTrainedModelResponse PutTrainedModel(Elastic.Clients.Elasticsearch.Id model_id, Action<MlPutTrainedModelRequestDescriptor> configureRequest)
		{
			var descriptor = new MlPutTrainedModelRequestDescriptor(model_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutTrainedModelRequestDescriptor, MlPutTrainedModelResponse>(descriptor);
		}

		public MlPutTrainedModelResponse PutTrainedModel<TDocument>(Elastic.Clients.Elasticsearch.Id model_id, Action<MlPutTrainedModelRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlPutTrainedModelRequestDescriptor<TDocument>(model_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlPutTrainedModelRequestDescriptor<TDocument>, MlPutTrainedModelResponse>(descriptor);
		}

		public Task<MlPutTrainedModelResponse> PutTrainedModelAsync(Elastic.Clients.Elasticsearch.Id model_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutTrainedModelRequestDescriptor(model_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelRequestDescriptor, MlPutTrainedModelResponse>(descriptor);
		}

		public Task<MlPutTrainedModelResponse> PutTrainedModelAsync(Elastic.Clients.Elasticsearch.Id model_id, Action<MlPutTrainedModelRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutTrainedModelRequestDescriptor(model_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelRequestDescriptor, MlPutTrainedModelResponse>(descriptor);
		}

		public Task<MlPutTrainedModelResponse> PutTrainedModelAsync<TDocument>(Elastic.Clients.Elasticsearch.Id model_id, Action<MlPutTrainedModelRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlPutTrainedModelRequestDescriptor<TDocument>(model_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlPutTrainedModelRequestDescriptor<TDocument>, MlPutTrainedModelResponse>(descriptor);
		}

		public MlResetJobResponse ResetJob(MlResetJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlResetJobRequest, MlResetJobResponse>(request);
		}

		public Task<MlResetJobResponse> ResetJobAsync(MlResetJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlResetJobRequest, MlResetJobResponse>(request, cancellationToken);
		}

		public MlResetJobResponse ResetJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlResetJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlResetJobRequestDescriptor, MlResetJobResponse>(descriptor);
		}

		public MlResetJobResponse ResetJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlResetJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlResetJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlResetJobRequestDescriptor, MlResetJobResponse>(descriptor);
		}

		public Task<MlResetJobResponse> ResetJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlResetJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlResetJobRequestDescriptor, MlResetJobResponse>(descriptor);
		}

		public Task<MlResetJobResponse> ResetJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlResetJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlResetJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlResetJobRequestDescriptor, MlResetJobResponse>(descriptor);
		}

		public MlRevertModelSnapshotResponse RevertModelSnapshot(MlRevertModelSnapshotRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlRevertModelSnapshotRequest, MlRevertModelSnapshotResponse>(request);
		}

		public Task<MlRevertModelSnapshotResponse> RevertModelSnapshotAsync(MlRevertModelSnapshotRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlRevertModelSnapshotRequest, MlRevertModelSnapshotResponse>(request, cancellationToken);
		}

		public MlRevertModelSnapshotResponse RevertModelSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id)
		{
			var descriptor = new MlRevertModelSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequest<MlRevertModelSnapshotRequestDescriptor, MlRevertModelSnapshotResponse>(descriptor);
		}

		public MlRevertModelSnapshotResponse RevertModelSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlRevertModelSnapshotRequestDescriptor> configureRequest)
		{
			var descriptor = new MlRevertModelSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlRevertModelSnapshotRequestDescriptor, MlRevertModelSnapshotResponse>(descriptor);
		}

		public Task<MlRevertModelSnapshotResponse> RevertModelSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlRevertModelSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlRevertModelSnapshotRequestDescriptor, MlRevertModelSnapshotResponse>(descriptor);
		}

		public Task<MlRevertModelSnapshotResponse> RevertModelSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlRevertModelSnapshotRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlRevertModelSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlRevertModelSnapshotRequestDescriptor, MlRevertModelSnapshotResponse>(descriptor);
		}

		public MlSetUpgradeModeResponse SetUpgradeMode(MlSetUpgradeModeRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlSetUpgradeModeRequest, MlSetUpgradeModeResponse>(request);
		}

		public Task<MlSetUpgradeModeResponse> SetUpgradeModeAsync(MlSetUpgradeModeRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlSetUpgradeModeRequest, MlSetUpgradeModeResponse>(request, cancellationToken);
		}

		public MlSetUpgradeModeResponse SetUpgradeMode()
		{
			var descriptor = new MlSetUpgradeModeRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlSetUpgradeModeRequestDescriptor, MlSetUpgradeModeResponse>(descriptor);
		}

		public MlSetUpgradeModeResponse SetUpgradeMode(Action<MlSetUpgradeModeRequestDescriptor> configureRequest)
		{
			var descriptor = new MlSetUpgradeModeRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlSetUpgradeModeRequestDescriptor, MlSetUpgradeModeResponse>(descriptor);
		}

		public Task<MlSetUpgradeModeResponse> SetUpgradeModeAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlSetUpgradeModeRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlSetUpgradeModeRequestDescriptor, MlSetUpgradeModeResponse>(descriptor);
		}

		public Task<MlSetUpgradeModeResponse> SetUpgradeModeAsync(Action<MlSetUpgradeModeRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlSetUpgradeModeRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlSetUpgradeModeRequestDescriptor, MlSetUpgradeModeResponse>(descriptor);
		}

		public MlStartDatafeedResponse StartDatafeed(MlStartDatafeedRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlStartDatafeedRequest, MlStartDatafeedResponse>(request);
		}

		public Task<MlStartDatafeedResponse> StartDatafeedAsync(MlStartDatafeedRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlStartDatafeedRequest, MlStartDatafeedResponse>(request, cancellationToken);
		}

		public MlStartDatafeedResponse StartDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id)
		{
			var descriptor = new MlStartDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequest<MlStartDatafeedRequestDescriptor, MlStartDatafeedResponse>(descriptor);
		}

		public MlStartDatafeedResponse StartDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlStartDatafeedRequestDescriptor> configureRequest)
		{
			var descriptor = new MlStartDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlStartDatafeedRequestDescriptor, MlStartDatafeedResponse>(descriptor);
		}

		public Task<MlStartDatafeedResponse> StartDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStartDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStartDatafeedRequestDescriptor, MlStartDatafeedResponse>(descriptor);
		}

		public Task<MlStartDatafeedResponse> StartDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlStartDatafeedRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStartDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStartDatafeedRequestDescriptor, MlStartDatafeedResponse>(descriptor);
		}

		public MlStartDataFrameAnalyticsResponse StartDataFrameAnalytics(MlStartDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlStartDataFrameAnalyticsRequest, MlStartDataFrameAnalyticsResponse>(request);
		}

		public Task<MlStartDataFrameAnalyticsResponse> StartDataFrameAnalyticsAsync(MlStartDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlStartDataFrameAnalyticsRequest, MlStartDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlStartDataFrameAnalyticsResponse StartDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id)
		{
			var descriptor = new MlStartDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequest<MlStartDataFrameAnalyticsRequestDescriptor, MlStartDataFrameAnalyticsResponse>(descriptor);
		}

		public MlStartDataFrameAnalyticsResponse StartDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id, Action<MlStartDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlStartDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlStartDataFrameAnalyticsRequestDescriptor, MlStartDataFrameAnalyticsResponse>(descriptor);
		}

		public MlStartDataFrameAnalyticsResponse StartDataFrameAnalytics<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlStartDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlStartDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlStartDataFrameAnalyticsRequestDescriptor<TDocument>, MlStartDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlStartDataFrameAnalyticsResponse> StartDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStartDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStartDataFrameAnalyticsRequestDescriptor, MlStartDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlStartDataFrameAnalyticsResponse> StartDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, Action<MlStartDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStartDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStartDataFrameAnalyticsRequestDescriptor, MlStartDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlStartDataFrameAnalyticsResponse> StartDataFrameAnalyticsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlStartDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStartDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStartDataFrameAnalyticsRequestDescriptor<TDocument>, MlStartDataFrameAnalyticsResponse>(descriptor);
		}

		public MlStopDatafeedResponse StopDatafeed(MlStopDatafeedRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlStopDatafeedRequest, MlStopDatafeedResponse>(request);
		}

		public Task<MlStopDatafeedResponse> StopDatafeedAsync(MlStopDatafeedRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlStopDatafeedRequest, MlStopDatafeedResponse>(request, cancellationToken);
		}

		public MlStopDatafeedResponse StopDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id)
		{
			var descriptor = new MlStopDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequest<MlStopDatafeedRequestDescriptor, MlStopDatafeedResponse>(descriptor);
		}

		public MlStopDatafeedResponse StopDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlStopDatafeedRequestDescriptor> configureRequest)
		{
			var descriptor = new MlStopDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlStopDatafeedRequestDescriptor, MlStopDatafeedResponse>(descriptor);
		}

		public Task<MlStopDatafeedResponse> StopDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStopDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStopDatafeedRequestDescriptor, MlStopDatafeedResponse>(descriptor);
		}

		public Task<MlStopDatafeedResponse> StopDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlStopDatafeedRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStopDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStopDatafeedRequestDescriptor, MlStopDatafeedResponse>(descriptor);
		}

		public MlStopDataFrameAnalyticsResponse StopDataFrameAnalytics(MlStopDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlStopDataFrameAnalyticsRequest, MlStopDataFrameAnalyticsResponse>(request);
		}

		public Task<MlStopDataFrameAnalyticsResponse> StopDataFrameAnalyticsAsync(MlStopDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlStopDataFrameAnalyticsRequest, MlStopDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlStopDataFrameAnalyticsResponse StopDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id)
		{
			var descriptor = new MlStopDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequest<MlStopDataFrameAnalyticsRequestDescriptor, MlStopDataFrameAnalyticsResponse>(descriptor);
		}

		public MlStopDataFrameAnalyticsResponse StopDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id, Action<MlStopDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlStopDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlStopDataFrameAnalyticsRequestDescriptor, MlStopDataFrameAnalyticsResponse>(descriptor);
		}

		public MlStopDataFrameAnalyticsResponse StopDataFrameAnalytics<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlStopDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlStopDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlStopDataFrameAnalyticsRequestDescriptor<TDocument>, MlStopDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlStopDataFrameAnalyticsResponse> StopDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStopDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStopDataFrameAnalyticsRequestDescriptor, MlStopDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlStopDataFrameAnalyticsResponse> StopDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, Action<MlStopDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStopDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStopDataFrameAnalyticsRequestDescriptor, MlStopDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlStopDataFrameAnalyticsResponse> StopDataFrameAnalyticsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlStopDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlStopDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlStopDataFrameAnalyticsRequestDescriptor<TDocument>, MlStopDataFrameAnalyticsResponse>(descriptor);
		}

		public MlUpdateDatafeedResponse UpdateDatafeed(MlUpdateDatafeedRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlUpdateDatafeedRequest, MlUpdateDatafeedResponse>(request);
		}

		public Task<MlUpdateDatafeedResponse> UpdateDatafeedAsync(MlUpdateDatafeedRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlUpdateDatafeedRequest, MlUpdateDatafeedResponse>(request, cancellationToken);
		}

		public MlUpdateDatafeedResponse UpdateDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id)
		{
			var descriptor = new MlUpdateDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateDatafeedRequestDescriptor, MlUpdateDatafeedResponse>(descriptor);
		}

		public MlUpdateDatafeedResponse UpdateDatafeed(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlUpdateDatafeedRequestDescriptor> configureRequest)
		{
			var descriptor = new MlUpdateDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateDatafeedRequestDescriptor, MlUpdateDatafeedResponse>(descriptor);
		}

		public MlUpdateDatafeedResponse UpdateDatafeed<TDocument>(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlUpdateDatafeedRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlUpdateDatafeedRequestDescriptor<TDocument>(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateDatafeedRequestDescriptor<TDocument>, MlUpdateDatafeedResponse>(descriptor);
		}

		public Task<MlUpdateDatafeedResponse> UpdateDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateDatafeedRequestDescriptor(datafeed_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateDatafeedRequestDescriptor, MlUpdateDatafeedResponse>(descriptor);
		}

		public Task<MlUpdateDatafeedResponse> UpdateDatafeedAsync(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlUpdateDatafeedRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateDatafeedRequestDescriptor(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateDatafeedRequestDescriptor, MlUpdateDatafeedResponse>(descriptor);
		}

		public Task<MlUpdateDatafeedResponse> UpdateDatafeedAsync<TDocument>(Elastic.Clients.Elasticsearch.Id datafeed_id, Action<MlUpdateDatafeedRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateDatafeedRequestDescriptor<TDocument>(datafeed_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateDatafeedRequestDescriptor<TDocument>, MlUpdateDatafeedResponse>(descriptor);
		}

		public MlUpdateDataFrameAnalyticsResponse UpdateDataFrameAnalytics(MlUpdateDataFrameAnalyticsRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlUpdateDataFrameAnalyticsRequest, MlUpdateDataFrameAnalyticsResponse>(request);
		}

		public Task<MlUpdateDataFrameAnalyticsResponse> UpdateDataFrameAnalyticsAsync(MlUpdateDataFrameAnalyticsRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlUpdateDataFrameAnalyticsRequest, MlUpdateDataFrameAnalyticsResponse>(request, cancellationToken);
		}

		public MlUpdateDataFrameAnalyticsResponse UpdateDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id)
		{
			var descriptor = new MlUpdateDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateDataFrameAnalyticsRequestDescriptor, MlUpdateDataFrameAnalyticsResponse>(descriptor);
		}

		public MlUpdateDataFrameAnalyticsResponse UpdateDataFrameAnalytics(Elastic.Clients.Elasticsearch.Id id, Action<MlUpdateDataFrameAnalyticsRequestDescriptor> configureRequest)
		{
			var descriptor = new MlUpdateDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateDataFrameAnalyticsRequestDescriptor, MlUpdateDataFrameAnalyticsResponse>(descriptor);
		}

		public MlUpdateDataFrameAnalyticsResponse UpdateDataFrameAnalytics<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlUpdateDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlUpdateDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateDataFrameAnalyticsRequestDescriptor<TDocument>, MlUpdateDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlUpdateDataFrameAnalyticsResponse> UpdateDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateDataFrameAnalyticsRequestDescriptor(id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateDataFrameAnalyticsRequestDescriptor, MlUpdateDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlUpdateDataFrameAnalyticsResponse> UpdateDataFrameAnalyticsAsync(Elastic.Clients.Elasticsearch.Id id, Action<MlUpdateDataFrameAnalyticsRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateDataFrameAnalyticsRequestDescriptor(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateDataFrameAnalyticsRequestDescriptor, MlUpdateDataFrameAnalyticsResponse>(descriptor);
		}

		public Task<MlUpdateDataFrameAnalyticsResponse> UpdateDataFrameAnalyticsAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, Action<MlUpdateDataFrameAnalyticsRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateDataFrameAnalyticsRequestDescriptor<TDocument>(id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateDataFrameAnalyticsRequestDescriptor<TDocument>, MlUpdateDataFrameAnalyticsResponse>(descriptor);
		}

		public MlUpdateFilterResponse UpdateFilter(MlUpdateFilterRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlUpdateFilterRequest, MlUpdateFilterResponse>(request);
		}

		public Task<MlUpdateFilterResponse> UpdateFilterAsync(MlUpdateFilterRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlUpdateFilterRequest, MlUpdateFilterResponse>(request, cancellationToken);
		}

		public MlUpdateFilterResponse UpdateFilter(Elastic.Clients.Elasticsearch.Id filter_id)
		{
			var descriptor = new MlUpdateFilterRequestDescriptor(filter_id);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateFilterRequestDescriptor, MlUpdateFilterResponse>(descriptor);
		}

		public MlUpdateFilterResponse UpdateFilter(Elastic.Clients.Elasticsearch.Id filter_id, Action<MlUpdateFilterRequestDescriptor> configureRequest)
		{
			var descriptor = new MlUpdateFilterRequestDescriptor(filter_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateFilterRequestDescriptor, MlUpdateFilterResponse>(descriptor);
		}

		public Task<MlUpdateFilterResponse> UpdateFilterAsync(Elastic.Clients.Elasticsearch.Id filter_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateFilterRequestDescriptor(filter_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateFilterRequestDescriptor, MlUpdateFilterResponse>(descriptor);
		}

		public Task<MlUpdateFilterResponse> UpdateFilterAsync(Elastic.Clients.Elasticsearch.Id filter_id, Action<MlUpdateFilterRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateFilterRequestDescriptor(filter_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateFilterRequestDescriptor, MlUpdateFilterResponse>(descriptor);
		}

		public MlUpdateJobResponse UpdateJob(MlUpdateJobRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlUpdateJobRequest, MlUpdateJobResponse>(request);
		}

		public Task<MlUpdateJobResponse> UpdateJobAsync(MlUpdateJobRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlUpdateJobRequest, MlUpdateJobResponse>(request, cancellationToken);
		}

		public MlUpdateJobResponse UpdateJob(Elastic.Clients.Elasticsearch.Id job_id)
		{
			var descriptor = new MlUpdateJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateJobRequestDescriptor, MlUpdateJobResponse>(descriptor);
		}

		public MlUpdateJobResponse UpdateJob(Elastic.Clients.Elasticsearch.Id job_id, Action<MlUpdateJobRequestDescriptor> configureRequest)
		{
			var descriptor = new MlUpdateJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateJobRequestDescriptor, MlUpdateJobResponse>(descriptor);
		}

		public MlUpdateJobResponse UpdateJob<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlUpdateJobRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlUpdateJobRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateJobRequestDescriptor<TDocument>, MlUpdateJobResponse>(descriptor);
		}

		public Task<MlUpdateJobResponse> UpdateJobAsync(Elastic.Clients.Elasticsearch.Id job_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateJobRequestDescriptor(job_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateJobRequestDescriptor, MlUpdateJobResponse>(descriptor);
		}

		public Task<MlUpdateJobResponse> UpdateJobAsync(Elastic.Clients.Elasticsearch.Id job_id, Action<MlUpdateJobRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateJobRequestDescriptor(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateJobRequestDescriptor, MlUpdateJobResponse>(descriptor);
		}

		public Task<MlUpdateJobResponse> UpdateJobAsync<TDocument>(Elastic.Clients.Elasticsearch.Id job_id, Action<MlUpdateJobRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateJobRequestDescriptor<TDocument>(job_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateJobRequestDescriptor<TDocument>, MlUpdateJobResponse>(descriptor);
		}

		public MlUpdateModelSnapshotResponse UpdateModelSnapshot(MlUpdateModelSnapshotRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlUpdateModelSnapshotRequest, MlUpdateModelSnapshotResponse>(request);
		}

		public Task<MlUpdateModelSnapshotResponse> UpdateModelSnapshotAsync(MlUpdateModelSnapshotRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlUpdateModelSnapshotRequest, MlUpdateModelSnapshotResponse>(request, cancellationToken);
		}

		public MlUpdateModelSnapshotResponse UpdateModelSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id)
		{
			var descriptor = new MlUpdateModelSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateModelSnapshotRequestDescriptor, MlUpdateModelSnapshotResponse>(descriptor);
		}

		public MlUpdateModelSnapshotResponse UpdateModelSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlUpdateModelSnapshotRequestDescriptor> configureRequest)
		{
			var descriptor = new MlUpdateModelSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpdateModelSnapshotRequestDescriptor, MlUpdateModelSnapshotResponse>(descriptor);
		}

		public Task<MlUpdateModelSnapshotResponse> UpdateModelSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateModelSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateModelSnapshotRequestDescriptor, MlUpdateModelSnapshotResponse>(descriptor);
		}

		public Task<MlUpdateModelSnapshotResponse> UpdateModelSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlUpdateModelSnapshotRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpdateModelSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpdateModelSnapshotRequestDescriptor, MlUpdateModelSnapshotResponse>(descriptor);
		}

		public MlUpgradeJobSnapshotResponse UpgradeJobSnapshot(MlUpgradeJobSnapshotRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlUpgradeJobSnapshotRequest, MlUpgradeJobSnapshotResponse>(request);
		}

		public Task<MlUpgradeJobSnapshotResponse> UpgradeJobSnapshotAsync(MlUpgradeJobSnapshotRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlUpgradeJobSnapshotRequest, MlUpgradeJobSnapshotResponse>(request, cancellationToken);
		}

		public MlUpgradeJobSnapshotResponse UpgradeJobSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id)
		{
			var descriptor = new MlUpgradeJobSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequest<MlUpgradeJobSnapshotRequestDescriptor, MlUpgradeJobSnapshotResponse>(descriptor);
		}

		public MlUpgradeJobSnapshotResponse UpgradeJobSnapshot(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlUpgradeJobSnapshotRequestDescriptor> configureRequest)
		{
			var descriptor = new MlUpgradeJobSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlUpgradeJobSnapshotRequestDescriptor, MlUpgradeJobSnapshotResponse>(descriptor);
		}

		public Task<MlUpgradeJobSnapshotResponse> UpgradeJobSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpgradeJobSnapshotRequestDescriptor(job_id, snapshot_id);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpgradeJobSnapshotRequestDescriptor, MlUpgradeJobSnapshotResponse>(descriptor);
		}

		public Task<MlUpgradeJobSnapshotResponse> UpgradeJobSnapshotAsync(Elastic.Clients.Elasticsearch.Id job_id, Elastic.Clients.Elasticsearch.Id snapshot_id, Action<MlUpgradeJobSnapshotRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlUpgradeJobSnapshotRequestDescriptor(job_id, snapshot_id);
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlUpgradeJobSnapshotRequestDescriptor, MlUpgradeJobSnapshotResponse>(descriptor);
		}

		public MlValidateDetectorResponse ValidateDetector(MlValidateDetectorRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlValidateDetectorRequest, MlValidateDetectorResponse>(request);
		}

		public Task<MlValidateDetectorResponse> ValidateDetectorAsync(MlValidateDetectorRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlValidateDetectorRequest, MlValidateDetectorResponse>(request, cancellationToken);
		}

		public MlValidateDetectorResponse ValidateDetector()
		{
			var descriptor = new MlValidateDetectorRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlValidateDetectorRequestDescriptor, MlValidateDetectorResponse>(descriptor);
		}

		public MlValidateDetectorResponse ValidateDetector(Action<MlValidateDetectorRequestDescriptor> configureRequest)
		{
			var descriptor = new MlValidateDetectorRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlValidateDetectorRequestDescriptor, MlValidateDetectorResponse>(descriptor);
		}

		public Task<MlValidateDetectorResponse> ValidateDetectorAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlValidateDetectorRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlValidateDetectorRequestDescriptor, MlValidateDetectorResponse>(descriptor);
		}

		public Task<MlValidateDetectorResponse> ValidateDetectorAsync(Action<MlValidateDetectorRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlValidateDetectorRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlValidateDetectorRequestDescriptor, MlValidateDetectorResponse>(descriptor);
		}

		public MlValidateResponse Validate(MlValidateRequest request)
		{
			request.BeforeRequest();
			return DoRequest<MlValidateRequest, MlValidateResponse>(request);
		}

		public Task<MlValidateResponse> ValidateAsync(MlValidateRequest request, CancellationToken cancellationToken = default)
		{
			request.BeforeRequest();
			return DoRequestAsync<MlValidateRequest, MlValidateResponse>(request, cancellationToken);
		}

		public MlValidateResponse Validate()
		{
			var descriptor = new MlValidateRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequest<MlValidateRequestDescriptor, MlValidateResponse>(descriptor);
		}

		public MlValidateResponse Validate(Action<MlValidateRequestDescriptor> configureRequest)
		{
			var descriptor = new MlValidateRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlValidateRequestDescriptor, MlValidateResponse>(descriptor);
		}

		public MlValidateResponse Validate<TDocument>(Action<MlValidateRequestDescriptor<TDocument>> configureRequest)
		{
			var descriptor = new MlValidateRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequest<MlValidateRequestDescriptor<TDocument>, MlValidateResponse>(descriptor);
		}

		public Task<MlValidateResponse> ValidateAsync(CancellationToken cancellationToken = default)
		{
			var descriptor = new MlValidateRequestDescriptor();
			descriptor.BeforeRequest();
			return DoRequestAsync<MlValidateRequestDescriptor, MlValidateResponse>(descriptor);
		}

		public Task<MlValidateResponse> ValidateAsync(Action<MlValidateRequestDescriptor> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlValidateRequestDescriptor();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlValidateRequestDescriptor, MlValidateResponse>(descriptor);
		}

		public Task<MlValidateResponse> ValidateAsync<TDocument>(Action<MlValidateRequestDescriptor<TDocument>> configureRequest, CancellationToken cancellationToken = default)
		{
			var descriptor = new MlValidateRequestDescriptor<TDocument>();
			configureRequest?.Invoke(descriptor);
			descriptor.BeforeRequest();
			return DoRequestAsync<MlValidateRequestDescriptor<TDocument>, MlValidateResponse>(descriptor);
		}
	}
}